﻿using System.Collections.Generic;
using DataScripter.Database;
using DataScripter.Scripting.ScriptDefinitions;

namespace DataScripter.Scripting.Fluent
{
    public interface IFluentTableScriptRequest
    {
        IFluentTableScriptRequest IncludeDependencies();
        IFluentTableScriptRequest IncludeDependencies(IEnumerable<IForeignKey> foreignKeys);
        IFluentTableScriptRequest Where(string whereClause);
        ITableScriptRequest Request { get; }
        IScriptDefinition ScriptDefinition { get; }
        IFluentTableScriptRequest FilterByForeignKey(IForeignKey foreignKey);
        IFluentOrFilterRequest BeginOr();
        IFluentTableScriptRequest Lookup(string fieldName, string lookupTable, string lookupField);
    }
}